package cc.ls5l.tools.base;

//import org.apache.ibatis.session.SqlSessionFactory;
//import org.mybatis.spring.SqlSessionFactoryBean;
//import org.springframework.core.io.DefaultResourceLoader;
//import org.springframework.core.io.Resource;
//import org.springframework.core.io.support.PathMatchingResourcePatternResolver;

/**
 * DataConfig,获取数据源,配置给SqlSessionFactory,并以此获取session
 */
public class MbService extends DbService {

//    /**
//     * sqlSessionFactory
//     */
//    private SqlSessionFactory sqlSessionFactory;
//
//    /**
//     * 双验证单例模式
//     */
//    private static volatile MyBatisService dataConfig;
//
//    /**
//     * 构造并对sqlSessionFactory进行一次实例化
//     * @throws Exception
//     */
//    public MyBatisService() throws Exception {
//        System.out.println("DataConfig init");
//        if(null == BaseService.ds){
//            throw  new NullPointerException("DataSource 为空");
//        }
//        setSessionFactory(ds);
//    }
//
//    /**
//     * 提供双重锁单例,保证sqlSessionFactory只创建一次
//     * @return
//     * @throws Exception
//     */
//    public static MyBatisService getInstance() throws Exception {
//        if (dataConfig == null) {
//            synchronized (MyBatisService.class) {
//                if (dataConfig == null) {
//                    dataConfig = new MyBatisService();
//                }
//            }
//        }
//        return dataConfig;
//    }
//
//    /**
//     * 获取sqlSessionFactory的方法
//     */
//    public SqlSessionFactory getSqlSessionFactory() throws Exception {
//        return sqlSessionFactory;
//    }
//    /**
//     * 配置sqlSessionFactory的方法
//     * @throws Exception
//     */
//    public void setSessionFactory(DataSource ds) throws Exception {
//        // 创建sessionFactory
//        SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
//        // 注入数据源
//        factoryBean.setDataSource(ds);
//        // 扫描mapper.xml
//        Resource[] resources = new PathMatchingResourcePatternResolver().getResources("classpath:mybatis/*.xml");
//        factoryBean.setMapperLocations(resources);
//        // 读取config
//        factoryBean.setConfigLocation(new DefaultResourceLoader().getResource("classpath:mybatis-config.xml"));
//        sqlSessionFactory = factoryBean.getObject();
//        System.out.println("setSessionFactory init");
//    }
}